// 在 TypeScript 中，当我们想要描述两个值之间的对应关系时，会使用泛型。我们通过在函数签名中声明一个类型参数来做到这一点：

// 泛型是一个类型 参数
// 函数参数
// 泛型就是将两个或多个具有相同类型的值关联起来！
// 、泛型就是将两个或多个具有相同类型的值关联起来

// 在函数中使用泛型，是在函数名后面加的泛型
// function firstElement<Type>(arr: Type[]): Type | undefined {
//     return arr[0];
//   }

  function firstEle<Type>(arr:Type[]):Type| undefined {
      return arr[0]
  }
  firstEle([1])  //function firstEle<number>(arr: number[]): number  这里掉函数没传乐行参数，ts根据类型关系，推断出泛型取什么类型·

  